/*
moxl - Modular XML Library
Copyright (c) 2007, Malcolm Sparks

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*/
package moxl.tokenizer.xml.attrvalue;

import java.io.IOException;

import moxl.reader.LocateableReader;
import moxl.tokenizer.Token;
import moxl.tokenizer.TokenReadyState;
import moxl.tokenizer.AbstractTokenizerState;
import moxl.tokenizer.TokenizerStateMachine;
import moxl.tokenizer.xml.document.DocumentStartState;

public class SingleQuotedAttributeValueContinueState extends AbstractTokenizerState
{
	private static AbstractTokenizerState instance = new SingleQuotedAttributeValueContinueState();

	public static AbstractTokenizerState getInstance()
	{
		return instance;
	}

	@Override
    public void accept(TokenizerStateMachine stateMachine, Token token, LocateableReader reader) throws IOException
	{
		reader.mark(1);
		int c = reader.read();
		if (c == -1)
		{
			stateMachine.changeState(TokenReadyState.getInstance());

		}
		else if (c == '\'')
		{
			reader.reset();
			stateMachine.changeState(TokenReadyState.getInstance());
			stateMachine.setStartState(DocumentStartState.getInstance());

		}
		else
		{
			token.append(c);
		}
	}

}
